package com.itheima.filter1;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;

//针对进入沙滩的人进行安全检查
@WebFilter("/sand")
public class SafeFilter implements Filter {
    public void destroy() {
    }
   /*
   实施安全检查
      1:解决请求编码问题
      2:获取所有参数
      3：我们应该先创建一个集合用于接收 合法的物品
      4:遍历参数  解析里面内容
         使用 equals方法进行判断 将合法的物品方法哪个集合中
      5: 把这个集合 再传递给 servlet
      6: 放行
    */
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
       //1:解决请求编码问题
        req.setCharacterEncoding("utf-8");
        //响应编码
        resp.setContentType("text/html;charset=utf-8");

        // 2:获取所有参数
        String[] products = req.getParameterValues("product");
        //3:我们应该先创建一个集合用于接收 合法的物品
        ArrayList<String> safeList = new ArrayList<>();
        System.out.println("进行安全检查");
        System.out.println("安全检查之前 物品清单:"+ Arrays.toString(products));
        System.out.println("安全的可以带到沙滩，不安全暂时扣留");
        //4 遍历参数  解析里面内容
        //         使用 equals方法进行判断 将合法的物品方法哪个集合中
        if(products!=null&&products.length>0){
            for (String product : products) {
                //判断 如果物品是安全的就可以存储
                if("手榴弹".equals(product)||"冲锋枪".equals(product)){
                    continue;//跳出本次循环
                }else{
                    safeList.add(product);
                }
            }
        }
        System.out.println("当前安全物品清单:"+safeList);
     // 5 把这个集合 再传递给 servlet
        // 把 数据放到 request域中
       req.setAttribute("list",safeList);
       //6 放行
        chain.doFilter(req, resp);
    }

    public void init(FilterConfig config) throws ServletException {

    }

}
